package com.we.service;

import com.we.entity.Note;
import com.we.entity.PageBean;
import com.we.entity.Tag;

import java.util.List;


/**
 * @Description 标签业务逻辑接口
 * @Author cr7
 * @Date 2021-11-14 19:36
 * @Version V1.0
 */
public interface TagService {

    /**
     * 查询所有标签数量功能
     * @return
     */
    int findTagCount();

    /**
     * 分页查询所有标签名及数量功能
     * @param currentPage
     * @param pageSize
     * @return
     */
    PageBean<Tag> findAllTagByPage(int currentPage, int pageSize);

    /**
     * 查询指定标签功能
     * @param tagName
     * @return
     */
    int findTagByTagName(String tagName);

    /**
     * 添加标签功能
     * @param tagName
     * @return
     */
    int addTag(String tagName);

    /**
     * 删除标签功能
     * @param tagName
     * @return
     */
    int deleteTagByTagName(String tagName);

    /**
     * 保存笔记标签功能
     * @param tag
     * @param noteID
     */
    void saveTag(String tag, int noteID);

    /**
     * 根据笔记id查询标签功能
     * @param noteID
     * @return
     */
    List<Tag> findTagById(int noteID);

    /**
     * 修改标签功能
     * @param tagName
     * @param tagName1
     * @return
     */
    int updateTagName(String tagName,String tagName1);

    /**
     * 查询所有标签及其数量功能
     * @return
     */
    List findAllTag();

    /**
     * 查询标签下的笔记功能
     * @param tagName
     * @param currentPage
     * @param pageSize
     * @return
     */
    PageBean<Note> findNoteByTag(String tagName, int currentPage, int pageSize);
}
